package com.diver.flinkdemo.entity.xxt;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 2018/06/29
 * Created by Wen Jun.
 */
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "student_card对象", description = "学生证表")
@TableName("student_card")
public class StudentCard implements java.io.Serializable {

    // 序列化版本
    private static final long serialVersionUID = -7475485558377339904L;

    // 唯一标识（使用精创的stuCode） [主键]
    @TableId(type = IdType.INPUT)
    @ApiModelProperty(value = "主键")
    private String id;

    // 学校名称
    @ApiModelProperty(value = "学校名称")
    private String schoolName;

    // 年级id
    @ApiModelProperty(value = "年级id")
    private String gradeId;

    // 年级
    @ApiModelProperty(value = "年级")
    private String gradeName;

    // 班级id
    @ApiModelProperty(value = "班级id")
    private String classId;

    // 班级
    @ApiModelProperty(value = "班级")
    private String className;

    // 学校id
    @ApiModelProperty(value = "学校id")
    private String schoolId;

    // 学生姓名
    @ApiModelProperty(value = "学生姓名")
    private String name;

    //学生性别 1:男 2:女
    @ApiModelProperty(value = "学生性别 1:男 2:女")
    private String sex;

    // 学生姓名
    @ApiModelProperty(value = "学生家")
    private String family;

    // 学生姓名
    @ApiModelProperty(value = "学生生日")
    private String birthday;

    // 学生身份证号
    @ApiModelProperty(value = "学生身份证号")
    private String idCard;

    // 学籍号
    @ApiModelProperty(value = "学籍号")
    private String studentCode;

    // 学校地址
    @ApiModelProperty(value = "学校地址")
    private String schoolAddress;

    // 家庭住址
    @ApiModelProperty(value = "家庭住址")
    private String homeAddress;

    // 本人电话号码
    @ApiModelProperty(value = "本人电话号码")
    private String myPhone;

    // 联系人姓名
    @ApiModelProperty(value = "联系人姓名")
    private String contactsName;

    // 联系人电话号码
    @ApiModelProperty(value = "联系人电话号码")
    private String contactsPhone;

    // 申办单位
    @ApiModelProperty(value = "申办单位")
    private String bidUnit;

    // 卡类别
    @ApiModelProperty(value = "卡类别")
    private String cardType;

    // 发卡机构名称
    @ApiModelProperty(value = "发卡机构名称")
    private String cardIssuer;

    // 发卡机构代码
    @ApiModelProperty(value = "发卡机构代码")
    private String cardIssuerId;

    // 发卡序列号
    @ApiModelProperty(value = "发卡序列号")
    private String cardSerialNumber;

    // 发卡时间
    @ApiModelProperty(value = "发卡时间")
    private String hairpinTime;

    // 卡号
    @ApiModelProperty(value = "卡号")
    private String cardNumber;

    // 卡有效期
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "卡有效期")
    private String cardExpireDate;

    // 城市代码
    @ApiModelProperty(value = "城市代码")
    private String cityCode;

    // imei
    @ApiModelProperty(value = "imei")
    private String imei;

    //人员类型 1:学生证  2:老年证  3:教职工
    @ApiModelProperty(value = "人员类型 1:学生证  2:老年证  3:教职工")
    private String personType;

    // 批次名称
    @ApiModelProperty(value = "批次名称")
    private String batchId;

    //状态 0:iot未注册 1:iot未绑定 2:正常
    @ApiModelProperty(value = "状态 0:iot未注册 1:iot未绑定 2:正常")
    private String initialState;

    // 设备编号
    @ApiModelProperty(value = "设备编号")
    private String deviceNumber;

    // 设备验证码
    @ApiModelProperty(value = "设备验证码")
    private String deviceIdentifyingCode;

    // 设备密码
    @ApiModelProperty(value = "设备密码")
    private String devicePassword;

    // 创建时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    // 创建人
    @ApiModelProperty(value = "创建人")
    private String createPerson;

    // 更新时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    // 更新人
    @ApiModelProperty(value = "更新人")
    private String updatePerson;

    // 删除标识（0：未删除，1：已删除）
    @ApiModelProperty(value = "删除标识 0：未删除 1：已删除")
    private Integer deleteFlag = 0;

    // 删除时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "删除时间")
    private Date deleteTime;

    // 删除人
    @ApiModelProperty(value = "删除人")
    private String deletePerson;

    //是否启用轨迹偏移预警:0为启动，1：不启动
    @ApiModelProperty(value = "是否启用轨迹偏移预警 0:启动 1不启动")
    private Integer useSafetyTrajectory;

    //上学类型：out为走读，in为住校
    @ApiModelProperty(value = "上学类型 out:走读 in:住校")
    private String studentType;

    /**
     * 固件版本
     */
    @ApiModelProperty(value = "固件版本")
    private String fwVersion;

    //卡版本：学生卡 studentCard，老年卡 oldCard
    @ApiModelProperty(value = "版本：学生卡:studentCard 老年卡:oldCard")
    private String cardVersion;

    //头像
    @ApiModelProperty(value = "头像")
    private String headImg;

    //是否开启短信发送 0开启(默认),1关闭
    @ApiModelProperty(value = "是否开启短信发送 0:开启(默认) 1:关闭")
    private Integer isSend = 0;

    //应用市场school、public
    @ApiModelProperty(value = "应用市场:school、public")
    private String appMarket;

    //目标步数
    @ApiModelProperty(value = "目标步数")
    private Integer goalStep;

    //身高
    @ApiModelProperty(value = "身高")
    private Float tall;

    //体重
    @ApiModelProperty(value = "体重")
    private Float weight;

    //省
    @ApiModelProperty(value = "省")
    private String locationProvince;

    //市
    @ApiModelProperty(value = "市")
    private String locationCity;

    //区县
    @ApiModelProperty(value = "区县")
    private String locationArea;

    // 前端地区 code
    @ApiModelProperty(value = "前端地区 code")
    private String locationCode;

    //芯片号
    @ApiModelProperty(value = "芯片号")
    private String chipNumber;

    @ApiModelProperty(value = "noBotherStatus")
    private Integer noBotherStatus;

    //ICCID
    @ApiModelProperty(value = "ICCID")
    private String iccid;

    @ApiModelProperty(value = "rfid")
    private String rfid;

    @ApiModelProperty(value = "seid")
    private String seid;

    //翼支付学校编码
    @ApiModelProperty(value = "翼支付学校编码")
    private String epaySchoolCode;

    //翼支付地区编码
    @ApiModelProperty(value = "翼支付地区编码")
    private String epayAreaCode;

    //翼支付注册状态0未注册，1注册中，2已注册，3注销中，4已注销
    @ApiModelProperty(value = "翼支付注册状态 0:未注册 1:注册中 2:已注册 3:注销中 4:已注销")
    private Integer epayRegisterStatus = 0;

    //是否推送省中台
    @TableField(exist = false)
    @ApiModelProperty(value = "是否推送省中台")
    private Boolean isPushSZT;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "firstBindTime")
    private Date firstBindTime;

    @ApiModelProperty(value = "firstBindPhone")
    private String firstBindPhone;

    //黄石工行绑定的会员手机号，空表示未开通
    @ApiModelProperty(value = "黄石工行绑定的会员手机号，空表示未开通")
    private String memberPhone;

    //黄石工行会员号，空表示未开通
    @ApiModelProperty(value = "黄石工行会员号，空表示未开通")
    private String memberCode;
}
